// The Vue build version to load with the `import` command
// (runtime-only or standalone) has been set in webpack.base.conf with an alias.
import Vue from 'vue';
import App from './App';
import router from './router';

Vue.config.productionTip = false

import VueResource from 'vue-resource';// vue http get or post
Vue.use(VueResource);//使用响应请求

import 'vue-easytable/libs/themes-base/index.css';//table and pagination
import {VTable,VPagination} from 'vue-easytable';

Vue.component(VTable.name, VTable);
Vue.component(VPagination.name, VPagination);

import './styles/base.css';//导入重置样式表
import './styles/main.less';//导入主样式表
import tool from './javascripts/tool.js';

//qrcode
import VueQrcode from '@xkeshi/vue-qrcode';
Vue.component('qrcode', VueQrcode);

import NProgress from 'nprogress';// vue nprogress loading bar
import 'nprogress/nprogress.css';// 进度条样式
NProgress.configure({// NProgress 进度条配置
    minimum : 0.1,//在开始使用的最小百分比变化
    easing: 'ease',
    speed: 1500,
    showSpinner:false,//关闭旋转圈
});

// 引入创建的Store
import store from '@/store/index';
let Store = store.state;

// 路由请求拦截之前
let indexScrollTop = 0;
router.beforeEach((to,from,next) => {
    // 设置路由页面文档标题
    // document.title = to.meta.title || document.title;
    next();
})


/**
*注入http请求拦截器
*使用进度条显示载入
*/
Vue.http.interceptors.push((request, next) => {
    NProgress.start();

    // modify headers
    // request.headers.set('token', getToken());

    next((response)=>{
        // 处理请求服务器错误时的提示，也可以做相应拦截
        if(response.status !== 200){
            // console.log(response.statusText);
            // router.push({ name: 'login' })
        }
        // progress done
        NProgress.done();
    });
});

// 路由请求完成之后
router.afterEach(to=>{
    NProgress.done();
    /*
    *定位列表页的scrollTop值，便于访问完详情页后返回上一次的位置
    *但是不能使用this.$router.go(-1)进行返回操作，
    *只能使用<router-link to="/">来进行返回
    */
    document.body.scrollTop = 0;

})


/* eslint-disable no-new */
new Vue({
    el: '#app',
    router,
    store,
    template: '<App/>',
    components: { App },
    data:{
        tool:tool
    }
})
